package com.young.tool;

import sun.misc.BASE64Decoder;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;

/**
 * 描述:
 *
 * @author BluceYoung
 * @create 2020-12-08 14:12
 * B站：TeacherYoung凌风
 * www.teacheryoung.com
 */
public class UploadImgTool {

    /**
     * 把图像字符串数据存盘
     * @param imgData 图像数据
     * @param saveDirectory 存储到的目录（绝对路径）
     * @param fileName 图像名称（包含扩展名）
     */
    public static boolean generateImg(String imgData,String saveDirectory,String fileName){
        //验证目录是否存在
        File directroy =new File(saveDirectory);
        if(directroy.exists()==false){
            directroy.mkdir();
        }
        if(imgData==null || imgData.length()==0){
            return false;
        }
        //数据转换操作
        BASE64Decoder decoder = new BASE64Decoder();
        try{
            //Base64解码
            byte[] b = decoder.decodeBuffer(imgData);
            for(int i=0;i<b.length;++i){
                if(b[i] < 0){//调整异常数据
                    b[i] += 256;
                }
            }
            File target=new File(saveDirectory,fileName);
            OutputStream out = new FileOutputStream(target);
            out.write(b);
            out.flush();
            out.close();
            return true;
        } catch (Exception e){
            e.printStackTrace();
            return false;
        }
    }
}
